In the field of information processing, virtualization technology is employed to allow a plurality of virtual computers (may be called virtual machines or logical hosts) to run on a physical computer (may be called physical machine or physical host). Software such as Operating System (OS) is able to run on each virtual machine. A physical machine using the virtualization technology runs software for managing a plurality of virtual machines. For example, software called a hypervisor may be used to allocate the processing power of a Central Processing Unit (CPU) and the storage area of a Random Access Memory (RAM) as operational resources to a plurality of virtual machines.
Update programs (may be called patches) may be provided for software. For example, the update programs include programs for addressing security problems and programs for adding functions.
For example, there is proposed a system for managing the application of patches to machines. This proposed system determines when to apply the patches. If a patch needs to be applied urgently, then the system determines to apply the patch immediately. If a patch is less urgent and the load on a machine that is to be patched is high, then the system determines to apply the patch a predetermined time later.
See, for example, Japanese National Publication of International Patent Application No. 2009-538469 and Japanese Laid-open Patent Publication No. 2010-250749.
There may be a case where a plurality of update programs is applied to a plurality of virtual machines running on a physical machine. In such a case, the update programs may be applied to the plurality of virtual machines in parallel, thereby completing the application promptly. This would be done because, for example, the application of update programs may be desired to be completed within a time period in which the application affects normal operations very little.
On the other hand, the application of update programs needs to use resources of a physical machine. Therefore, the application of the update programs to a plurality of virtual machines in parallel increases the load on the physical machine. This results in reducing resources available for processes (for example, processes that are performed on virtual machines to which the update programs are not to be applied) other than the process of applying the update programs. This may cause an adverse effect on the other processes, such as a delay. To deal with this problem, it needs to be considered how to efficiently determine a schedule for applying a plurality of update programs while taking effects on other processes into account.